﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace CamadaDados
{
    public class galeria
    {

        DB_CASAIS conexao = new DB_CASAIS();

        public void InicializarConexao(object banco)
        {
            ((DB_CASAIS)conexao).Connection.Open();
        }

        public void FecharConexao(object banco)
        {
            ((DB_CASAIS)conexao).Connection.Close();
        }

        public List<tb_galeria> ListarGalerias()
        {

            
            try
            {
                InicializarConexao(conexao);
              var  listGaleria = conexao.tb_galeria.ToList();
              return listGaleria;
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public IEnumerable<tb_galeria> ListarGaleriaDestaque()
        {

           
            try
            {
                InicializarConexao(conexao);
              var ListGaleria = conexao.tb_galeria.Where(q => q.CO_SITUACAO == 1).OrderByDescending(
                                   q => q.DT_CADASTRO).ToList().Take(6);
              return ListGaleria;
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
         
            
        }

        public tb_galeria SelecionarGaleria(int intCodGaleria)
        {
            
            try
            {
                InicializarConexao(conexao);
              var  objGaleira = conexao.tb_galeria.Where(q => q.CO_GALERIA == intCodGaleria).ToList().FirstOrDefault();
              return objGaleira;
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public void SalvarGaleira(tb_galeria objGaleria)
        {
            try
            {
                InicializarConexao(conexao);
                conexao.AddTotb_galeria(objGaleria);
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public void EditarGaleira(tb_galeria objGaleria)
        {
            try
            {
                InicializarConexao(conexao);
                var objGaleiraEditar = conexao.tb_galeria.Where(q => q.CO_GALERIA == objGaleria.CO_GALERIA).ToList().FirstOrDefault();
                objGaleiraEditar.DS_NOME = objGaleria.DS_NOME;
                objGaleiraEditar.DS_DESCRICAO = objGaleria.DS_DESCRICAO;
                objGaleiraEditar.CO_SITUACAO = objGaleria.CO_SITUACAO;
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public void ExcluirGaleria(int intCodGaleria)
        {
            try
            {
                InicializarConexao(conexao);
                var objGaleira = conexao.tb_galeria.Where(q => q.CO_GALERIA == intCodGaleria).ToList().FirstOrDefault();
                conexao.DeleteObject(objGaleira);
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public void MudarStatus(int intCodGaleria)
        {

            try
            {
                InicializarConexao(conexao);

                var objGaleria = conexao.tb_galeria.Where(q => q.CO_GALERIA == intCodGaleria).ToList().FirstOrDefault();

                if (objGaleria.CO_SITUACAO == 0)
                {
                    objGaleria.CO_SITUACAO = 1;
                }
                else
                {
                    objGaleria.CO_SITUACAO = 0;
                }
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
           
        }

        public void ExcluirImagem(int intCodImagem)
        {
            try
            {
                InicializarConexao(conexao);
                var objImagem = conexao.tb_imagem.Where(q => q.CO_IMAGEM == intCodImagem).ToList().FirstOrDefault();
                conexao.DeleteObject(objImagem);
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public void SalvarImagem(tb_imagem objImagem)
        {
            try
            {
                InicializarConexao(conexao);
                conexao.AddTotb_imagem(objImagem);
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public List<tb_imagem> ListarImagens(int intCodGaleria)
        {
            try
            {
                InicializarConexao(conexao);
                var listImagem = conexao.tb_imagem.Where(q => q.CO_GALERIA == intCodGaleria).ToList();
                return listImagem;
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
           
        }

        public tb_imagem SelecionarImagem(int intCodImagem)
        {
            try
            {
                InicializarConexao(conexao);
                var objImagem = conexao.tb_imagem.Where(q => q.CO_IMAGEM == intCodImagem).ToList().FirstOrDefault();
                return objImagem;
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public int UltimoCodigoImagem()
        {
            try
            {
                int intCodUlt = 0;
                InicializarConexao(conexao);
                var objImagem = conexao.tb_imagem.ToList().LastOrDefault();

                if (objImagem != null)
                {
                    intCodUlt = Convert.ToInt32(objImagem.CO_IMAGEM);
                }

                return intCodUlt;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

    }
}